Many types of input devices are presently available for performing operations in a computing system, such as buttons or keys, mice, trackballs, touch panels, joysticks, touch screens and the like. Touch screens, in particular, are becoming increasingly popular because of their ease and versatility of operation as well as their declining price. Touch screens can include a touch panel, which can be a clear panel with a touch-sensitive surface. The touch panel can be positioned in front of a display screen so that the touch-sensitive surface covers the viewable area of the display screen. Touch screens can allow a user to make selections and move a cursor by simply touching the display screen via a finger or stylus. In general, the touch screen can recognize the touch and position of the touch on the display screen, and the computing system can interpret the touch and thereafter perform an action based on the touch event.
Touch panels can include an array of touch sensors capable of detecting touch events (the touching of fingers or other objects upon a touch-sensitive surface). Future touch panels can detect multiple touches (the touching of fingers or other objects upon a touch-sensitive surface at distinct locations at about the same time) and near touches (fingers or other objects within the near-field detection capabilities of their touch sensors), and identify and track their locations. Examples of multi-touch panels are described in Applicant's co-pending U.S. application Ser. No. 10/842,862 entitled “Multipoint Touchscreen,” filed on May 6, 2004 and published as U.S. Published application No. 2006/0097991 on May 11, 2006, the contents of which are incorporated by reference herein.
Proximity sensor panels are another type of input device that can include an array of proximity sensors capable of detecting hover events (the no-touch, close proximity hovering of fingers or other objects above a surface but outside the near-field detection capabilities of touch sensors) as well as touch events. Proximity sensor panels may also be able to detect multiple instances of hovering referred to herein as multi-hover events (the hovering of fingers or other objects above a surface at distinct locations at about the same time). Examples of a proximity sensor, a proximity sensor panel, a multi-hover panel and a computing system using both a multi-touch panel and proximity sensors are described in Applicant's co-pending U.S. application Ser. No. 11/649,998 entitled “Proximity and Multi-Touch Sensor Detection and Demodulation,” filed on Jan. 3, 2007, the contents of which are incorporated by reference herein.
Proximity sensor panels can be employed either alone or in combination with multi-touch panels. In addition, it is noted that some touch sensors, particularly capacitive touch sensors, can detect some hovering or proximity. Proximity sensors, as referred to herein, are understood to be distinct from touch sensors, including touch sensors that have some ability to detect proximity. Sensor panels capable of detecting multi-touch events or multi-hover events may be referred to herein as multi-event sensor panels.
Both touch sensor panels and proximity sensor panels can be an array of rows and columns of sensors. To scan a sensor panel, a stimulus can be applied to one row with all other rows held at DC voltage levels. When a row is stimulated, a modulated output signal can appear on the columns of the sensor panel. The columns can be connected to analog channels (also referred to herein as event detection and demodulation circuits). For every row that is stimulated, each analog channel connected to a column generates an output value representative of a change in the modulated output signal due to a touch or hover event occurring at the sensor located at the intersection of the stimulated row and the connected column. After analog channel output values are obtained for every column in the sensor panel, a new row is stimulated (with all other rows once again held at DC voltage levels), and additional analog channel output values are obtained. When all rows have been stimulated and analog channel output values have been obtained, the sensor panel is said to have been “scanned,” and a complete “image” of touch or hover can be obtained over the entire sensor panel.
Each analog channel can include electronic components such as a virtual-ground charge amplifier, a signal mixer, offset compensation, a rectifier, a subtractor, and an analog-to-digital converter (ADC) that generates a digital signal representative of the change in the modulated output signal due to a touch or hover event. Ideally, with no stimulus applied to any row, the outputs of the analog channels connected to each column in the sensor panel will be the same, and will remain unchanged over temperature (representing a temperature coefficient of 1.0 for each analog channel). However, because electronic components are known to vary due to processing variations, manufacturing tolerances and assembly differences, and are known to vary over temperature, the analog channel output values can be different, and can change at different rates over temperature (i.e. the analog channels can have different temperature coefficients of something other than 1.0).
Assuming the existence of a temperature coefficient other than 1.0 for the analog channels, for the sake of uniformity it would at least be preferable to have the temperature coefficient for every analog channel be the same, so that the analog channel output values for every sensor or “pixel” on the sensor panel will track each other and an undistorted “image” of touch or hover can be obtained. For example, if a perfectly circular finger were to touch down at the exact center of a touch panel, it would be preferable for the resultant “image” of touch, as represented by the analog channel output values obtained during a single panel scan, to be a perfectly circular touch area at the center of the panel. However, because the temperature coefficient of each analog channel can vary by as much as a factor of five, the analog channel output values may not track each other and an inaccurate reading of the touch point can be obtained (i.e. the touch “image” can look distorted). In particular, it has been determined that the ADCs in the analog channels are more gain-stable than offset-stable, and that the center point of the ADCs drifts with temperature. Because the ADC output is essentially riding on a DC offset bias, and this DC offset drifts over temperature, the temperature coefficient of an analog channel has a larger effect on its static output value (the output value when a row is being stimulated and no finger or other object is present) than on its dynamic output value (the output value when a row is being stimulated and a finger or other object is present). If the ADC in each analog channel connected to each column in a sensor panel drifts at different rates, it distorts the “image” produced by the sensor panel.